import operate from './operate.js'
// vuex 的使用  详情参考官网 https://uniapp.dcloud.io/vue-vuex
import store from '../../store/index.js'
import {
	getToken,
	setToken,
	removeToken
} from "../../common/utils/auth";
export function uploadFile(filePath) {
	let hideLoading = false
	uni.showLoading({
		title: '加载中...'
	});
	// 返回promise
	return new Promise((resolve, reject) => {
		let header = {}
		// 请求头设置token
		let token = getToken();
		if (token) {
			header[operate.tokenRequestHeaderKey] = token
		} else {
			uni.showToast({
				title: '登陆后才能上传信息',
				icon: 'none'
			});
			setTimeout(() => uni.hideToast(), 500)
			reject()
			return
		}
		// 请求
		uni.uploadFile({
			url: operate.apiHost + operate.uploadFileUrl,
			filePath: filePath,
			name: 'file',
			// formData: {
			// 	'username': this.userInfo.username //formData是指除了图片以外，额外加的字段
			// },
			header: header,
			success: (res) => {
				console.log('request success',res)
				// 判断 请求api 格式是否正确
				if (res.statusCode && res.statusCode === 401) {
					removeToken()
					this.$websocket.closeConnect()
					uni.showToast({
						title: '登录状态失效或已过期',
						icon: 'none'
					});
					reject()
					return;
				}
				if (res.statusCode && res.statusCode === 500) {
					uni.showToast({
						title: "api错误" + res.errMsg,
						icon: 'none'
					});
					reject()
					return;
				}
				if (res.statusCode && res.statusCode !== 200) {
					uni.showToast({
						title: res.data.msg ? res.data.msg : "服务器访问错误，请联系管理员",
						icon: 'none'
					});
					reject()
					return;
				}
				let resData= JSON.parse(res.data)
				if (resData.code !== '00000') {
					uni.showToast({
						title: resData.msg ? resData.msg : "接口相应错误代码:" + resData.code,
						icon: 'none'
					});
				}
				// 将结果抛出
				resolve(resData.data)
			},
			//请求失败
			fail: (e) => {
				console.log('request fail')
				uni.showToast({
					title: "" + e.data.msg,
					icon: 'none'
				});
				resolve(e.data);
			},
			//请求完成
			complete() {
				//隐藏加载
				if (!hideLoading) {
					setTimeout(() => uni.hideLoading(), 500)
				}
			}
		})
	})
}
